<?php
/** ================================
 *  Intellect Board 3
 *  http://intblite.ru
 *  Модуль псевдостатических страниц
 *
 *  ================================ */

require_once('modules/uniforum.php');

class pstatic extends Uniforum {
  
  /** Просмотр псевдостатической страницы **/
  function action_view() {
    global $app;

    $result = new Html('static','pstatic');
    $result->set('data',$this->data); // выводим общую информация о теме

    $posts=$this->get_posts(0,1);
    if (!isset($posts[0])) $posts[0]=false;
    $result->set('post',$posts[0]);

    $moderate=$app->user->check_access('moderate');
    $result->set('moderate',$moderate);

    return $result;
  }

  /** Редактирование псевдостатической страницы **/
  function action_edit() {
    global $app;

    if (!$app->user->check_access('moderate')) {
      $app->message('У вас недостаточно прав для редактирования этой страницы!',3);
      $app->status=403;
      return false;
    }

    $errors=array();
    if ($app->is_post()) {
      $this->data=$_POST['topic'];
      $postdata=$this->set_post($_POST['post'],1); // если уже отправляли форму и возникли ошибки
      $errors=array_merge($this->validate_object(false),$this->validate_post($postdata,false));
      if (empty($errors)) { // если при проверке допустимости сообщения не возникло ошибок
        $this->save_object(false);
        // TODO: проверка прав на использование HTML, BoardCode, смайликов
        $this->save_post($postdata);  // сохраняем сообщение
        $time=time();
        $this->update_objects(array($this),$time,0,0);
        $app->message('Страница успешно отредактирована!',1);
        $app->status=302;
        $app->location=$app->hurl($this->data['url']); 
        return;
      }
    }
    if (!$errors) {
      $posts=$this->get_posts(0,1,0,0,1);
      if (isset($posts[0])) $postdata=$posts[0];
      else $postdata=$this->set_post(false,0);
    }
//    $data['text1']=str_replace('<br />','',$postdata['text1']);
    $result = new Html('edit','pstatic');
    $result->set('post',$postdata);
    $result->set('topic',$this->data);
    $result->set('errors',$errors);
    return $result;
  }

  /** Описание текущего действия в строке навигации **/
  function get_location($action) {
    if ($action=='edit') return 'Редактирование страницы';
    else return false;
  }

}

?>
